import org.junit.Test;

import java.lang.annotation.Annotation;

/**
 * @author Yin_JC
 * @PackageName:PACKAGE_NAME
 * @Class:AnnocationLearningTest
 * @Description:
 * @date 2020/3/4 10:19
 */
@MyAnnotation()
class tt1{
}

class tt2 extends tt1{

}
public class AnnotationLearningTest {
    /**
    * Description:注解
     * @Override
     * @Deprecated:表示修饰的类、方法、构造器、属性已经过时，可以用但不推荐
     * @SuppressWarning:抑制编译器警告
     *
     * ----------------------------------------------------
     * 元注解 修饰注解的注解
     * 【常用】@Retention(RetentionPolicy.SOURCE,CLASS,RUNTIME) 注解的生命周期,只有声明为runtime 的才能被反射捕获
     * 【常用】@Target 表示注解可以修饰哪些类型（例如：类、构造器、方法等）TYPE_USE 可修饰类型
     * @Documented 将被提取成文档
     * @Inherited 注解修饰父类，子类也会有该注解
     * @Repeatable(class) 注解可以重复添加
     * ----------------------------------------
     *
     *
    * @author: Yin
    * @date: 2020/3/4 10:19
    */
    @Test
    public void getAnnotation(){
        /**
        * @Description: 反射获取注解的举例
        * @author: Yin
        * @date: 2020/3/4 10:47
        */
        Class cc = tt2.class;
        Annotation[] annotation = cc.getAnnotations();
        for (Annotation a:annotation){
            System.out.println(a);
        }
    }

}
